LOCALTIME

               #include <time.h>
               struct tm *localtime(time);
               long *time;                 указатель на хранимое время

Описание.
Функция localtime преобразовывает время, хранимое как long -значение, к структуре. Long -значение time представляет секунды, прошедшие от 00:00:00 значения времени по Гринвичу, т.е. с 1 января 1980 года. Это значение обычно получается из вызова функции time.
Функция localtime разрывает значение time , корректирует зону местного времени и переход на летнее/зимнее время, если он назначен, и запоминает откорректированное время в структуре типа tm .(Смотрите gmtime для описания полей структуры tm .)
В MS DOS даты раньше 1980 года не понимаются. Если time представляет дату перед 1 января 1980 года ,localtime возвращает символьную строку, представленную 00:00:00 January 1,1980.
Функция localtime делает изменения для зоны местного времени, если пользователь впервые установил переменную окружения TZ .
Значением TZ должна быть названная трехбуквенная временная зона, например PST , следующая за возможным знаковым числом, задающим различие между значением времени по Гринвичу и зоной местного времени. Число должно следовать за трехбуквенной зоной перехода на летнее/зимнее время (например PDT ). Функция localtime использует различия между значением времени по Гринвичу и местным временем для установки значения запомненного времени. Если в установке TZ присутствует зона перехода на летнее/зимнее время, localtime также изменяет переход на летнее/зимнее время. Если в TZ нет текущего значения, используется значение PST8PDT , устанавливаемое по умолчанию.
Когда TZ установлена, автоматически устанавливаются три другие переменные окружения - timezone, daylight, tzname . Смотрите функцию tzset для описания этих переменных.

Возвращаемое значение.
Функция localtime возвращает указатель на результат в структуре. Возвращаемого значения в случае ошибки нет.

Пример:

               #include <stddio.h>
               #include <time.h>
               main()
               {
                 struct tm *newtime;
                 char *am_pm="PM";
                 time_t long_time;
                 time(&long_time);
                 newtime=localtime(&long_time);
                 if(newtime->tm_hour<12)
                    am_pm="AM";
                 if(newtime->tm_hour>12)
                    newtime->tm_hour-=12;
                 printf("%.19s %s\n", asctime(newtime), am_pm);
               }
            

На выходе:

               Tue Dec 10 11:30:12 AM
      
Hosted by uCoz